package com.fowo.api.mp.model;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;

@Data
public class WxACodeRequest {

    protected WxACodeRequest() {}

    public WxACodeRequest(String path) {
        this.path = path;
    }

    /**
     * 扫码进入的小程序页面路径，最大长度 128 字节，不能为空；对于小游戏，可以只传入 query 部分，来实现传参效果，如：传入 "?foo=bar"，即可在 wx.getLaunchOptionsSync 接口中的 query 参数获取到 {foo:"bar"}。
     */
    private String path;

    /**
     * 要打开的小程序版本。正式版为 release，体验版为 trial，开发版为 develop
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String envVersion;

    /**
     * 二维码的宽度，单位 px。最小 280px，最大 1280px
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer width;

    /**
     * 自动配置线条颜色，如果颜色依然是黑色，则说明不建议配置主色调
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Boolean autoColor;

    /**
     * 自动配置线条颜色，如果颜色依然是黑色，则说明不建议配置主色调
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private ByteColor lineColor;

    /**
     * 是否需要透明底色，为 true 时，生成透明底色的小程序码
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Boolean isHyaline;


    @Data
    @AllArgsConstructor
    public static class ByteColor {
        private byte r;
        private byte g;
        private byte b;
    }
}
